#include "SQLPrimaryKeyImpl.h"

SQLPrimaryKeyImpl::SQLPrimaryKeyImpl()
{
}

// void SQLPrimaryKeyImpl::accept0(SQLASTVisitor* visitor) {
//     if (visitor->visit(this)) {
//         acceptChild(visitor, this->getName());
//         // acceptChild(visitor, this->getColumns());
//     }
//     visitor->endVisit(this);
// }

SQLObject_ptr SQLPrimaryKeyImpl::clone()
{
  SQLObject_ptr clone_tmp = std::shared_ptr<SQLPrimaryKeyImpl>(new SQLPrimaryKeyImpl());
  std::shared_ptr<SQLPrimaryKeyImpl> x = std::dynamic_pointer_cast<SQLPrimaryKeyImpl>(clone_tmp);
  // SQLPrimaryKeyImpl* x = new SQLPrimaryKeyImpl();
  cloneTo(x);
  return x;
}

void SQLPrimaryKeyImpl::cloneTo(SQLPrimaryKeyImpl_ptr x)
{
  // super->cloneTo(x);
  x->disableNovalidate = disableNovalidate;
  x->clustered = clustered;
}

BOOL_ptr SQLPrimaryKeyImpl::isDisableNovalidate()
{
  return disableNovalidate;
}

void SQLPrimaryKeyImpl::setDisableNovalidate(BOOL_ptr disableNovalidate)
{
  this->disableNovalidate = disableNovalidate;
}

BOOL_ptr SQLPrimaryKeyImpl::isClustered()
{
  return clustered;
}

void SQLPrimaryKeyImpl::setClustered(BOOL_ptr clustered)
{
  this->clustered = clustered;
}
